<?php
/* *
 * 功能：51云支付即时到账支付支付异步通知页面
 * 说明：
 * 以下代码只是为了方便商户测试而提供的样例代码，商户可以根据自己网站的需要，按照技术文档编写,并非一定要使用该代码。
 * 该代码仅供学习和研究支付宝接口使用，只是提供一个参考。


 *************************页面功能说明*************************
 * 创建该页面文件时，请留心该页面文件中无任何HTML代码及空格。
 * 该页面不能在本机电脑测试，请到服务器上做测试。请确保外部可以访问该页面。
 * 该页面调试工具请使用写文本函数logResult，该函数已被默认关闭，见alipay_notify_class.php中的函数verifyNotify
 */

require_once("epay.config.php");
require_once("lib/epay_notify.class.php");

//计算得出通知验证结果
$alipayNotify = new AlipayNotify($alipay_config);
$verify_result = $alipayNotify->verifyNotify();

if($verify_result) {//验证成功
	/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
	//请在这里加上商户的业务逻辑程序代

	
	//——请根据您的业务逻辑来编写程序（以下代码仅作参考）——
	
    //获取支付宝的通知返回参数，可参考技术文档中服务器异步通知参数列表
	
	//商户订单号

	$out_trade_no = $_GET['out_trade_no'];

	//51云支付2.0交易号

	$trade_no = $_GET['trade_no'];

	//交易状态
	$trade_status = $_GET['trade_status'];

	//支付方式
	$type = $_GET['type'];

	$srow=$DB->query("SELECT * FROM pay_order WHERE out_trade_no='{$out_trade_no}' limit 1")->fetch();

if ($_GET['trade_status'] == 'TRADE_SUCCESS' && $srow['status']==0) {
   
	$DB->exec("update `pay_order` set `status`='1',`endtime`='{$date}' WHERE `out_trade_no`='{$out_trade_no}'");//更新数据
	if(strpos($srow['name'],'购买INTL_Pay授权')!=-1){
		$url = explode("|",$srow['data_msg'])[0];
		$qq = explode("|",$srow['data_msg'])[1];
		$money = 1000;
		$beizhu = '在线自助购买';
		$is=$DB->query("SELECT * FROM `pay_check` WHERE `qq`='{$qq}' limit 1")->fetch();
		 
		if($is){
			$authcode=$is['authcode'];
		}else{
			$authcode=md5(mt_rand(1000000000,9999999999).$qq);
		}
		$sds=$DB->exec("INSERT INTO `pay_check` (`daili_id`,`url`,`qq`, `beizhu`,`authcode`,`addtime`) VALUES ('admin','{$url}','{$qq}','{$beizhu}','{$authcode}','{$date}')");
		
		if($sds){
			$is=$DB->query("SELECT * FROM `pay_cloud` WHERE `qq`='{$qq}' limit 1")->fetch();
			if(!$is){
				$pid= '1'.mt_rand(10000000,99999999);
				$key= '1'.mt_rand(10000000,99999999);
				$sds=$DB->exec("INSERT INTO `pay_cloud` (`nickname`,`qq_id`,`qq`,`pid`,`key`,`money`) VALUES ('','','{$qq}','{$pid}','{$key}','{$money}')");
			}
			if($sds){
				$result=array("code"=>1,"msg"=>"添加授权成功");
			}else{
				$result=array("code"=>1,"msg"=>"添加授权成功,但生成云端账号密码失败");
			}
		}
	}elseif(strpos($srow['name'],'额度')){
		$money = 10000;
		$pay_type = explode("|",$srow['data_msg'])[0];
		$Instant_pid = explode("|",$srow['data_msg'])[1];
		$DB->exec("update `pay_cloud` set `money`=`money`+'{$money}' where pid='{$Instant_pid}'");
	}elseif(strpos($srow['name'],'支付宝账号密码')){
		$pay_type = explode("|",$srow['data_msg'])[0];
		$Instant_pid = explode("|",$srow['data_msg'])[1];
		$Instant_row=$DB->query("SELECT * FROM `pay_cloud` WHERE `pid`='{$Instant_pid}' limit 1")->fetch();
		if($Instant_row['alipay_up_outtime']<$date){
			$alipay_up_outtime = date('Y-m-d H:i:s',strtotime("+1 month"));//=一个月
		}else{ 
			$alipay_up_outtime = strtotime($Instant_row['alipay_up_outtime'])-time();
			$alipay_up_outtime = strtotime(date('Y-m-d H:i:s',strtotime("+1 month")))+$alipay_up_outtime;
			$alipay_up_outtime = date('Y-m-d H:i:s',$alipay_up_outtime);;
		}
		$DB->exec("update `pay_cloud` set `alipay_up_outtime`='{$alipay_up_outtime}' where pid='{$Instant_pid}'");
	}
		

}

	//——请根据您的业务逻辑来编写程序（以上代码仅作参考）——
        
	echo "success";		//请不要修改或删除
	
	/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
}
else {
    //验证失败
    echo "fail";
}
?>
